home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Borland Visual dBASE Professiona v7.0 / DATA1.CAB / Sample_dBASE / Text Table.wfm < prev    next >
Text File  |  1997-11-20  |  5KB  |  163 lines

  1. //------------------------------------------------------------------------
  2. //
  3. //  Text Table.wfm 
  4. //
  5. //  This form works with the Text Table Data Module to demonstrate 
  6. //  how to use a custom database class. While the form appears to 
  7. //  use a standard database, it is actually bypassing BDE to edit
  8. //  a text file through a custom query class. The entryfield uses
  9. //  a standard dataLink and the button's call delete() and count() 
  10. //  methods as if the rowset were working with a native BDE or 
  11. //  SQL-Link rowset. The custom query contains implementations 
  12. //  for the following rowset methods: beginAppend(), bookmark(), 
  13. //  count(), delete(), first(), goto(), last(), next() and save().
  14. //
  15. //  Note: Updates require exclusive use of the "Text Table.txt" file 
  16. //        and will fail if the Project Viewer is currently on a Form 
  17. //        View of this form or a Source View of "Text Table.txt".
  18. //
  19. //  Dependencies: Text Table.dmd
  20. //                Text Table.txt
  21. //  
  22. //  Visual dBASE Samples Group
  23. //
  24. //  $Revision:   1.8  $
  25. //
  26. //  Copyright (c) 1997, Borland International, Inc. 
  27. //  All rights reserved.
  28. //
  29. //------------------------------------------------------------------------
  30. //
  31. SET TALK OFF
  32. ** END HEADER -- do not remove this line
  33. //
  34. // Generated on 09/17/97
  35. //
  36. parameter bModal
  37. local f
  38. f = new TextTableForm()
  39. if (bModal)
  40.    f.mdi = false // ensure not MDI
  41.    f.readModal()
  42. else
  43.    f.open()
  44. endif
  45.  
  46. class TextTableForm of FORM
  47.    with (this)
  48.       onClose = {;this.rowset.parent.active = false}
  49.       height = 14.4091
  50.       left = 24
  51.       top = 0
  52.       width = 58.1429
  53.       text = "Text Table"
  54.       scaleFontSize = 8
  55.       scaleFontBold = false
  56.    endwith
  57.  
  58.  
  59.    this.DMDTEXT = new DATAMODREF()
  60.    this.DMDTEXT.Parent = this
  61.    With (this.DMDTEXT)
  62.       Filename = "TEXT TABLE.DMD"
  63.       DataModClass = "TextTableDataModule"
  64.       Share = 0
  65.       Active = True
  66.    EndWith
  67.  
  68.    this.TEXTTEXTFIELD1 = new TEXT(this)
  69.    with (this.TEXTTEXTFIELD1)
  70.       height = 0.8182
  71.       left = 1
  72.       top = 1
  73.       width = 18
  74.       metric = 0
  75.       colorNormal = "BtnText"
  76.       fontSize = 8
  77.       text = "Text field:"
  78.    endwith
  79.  
  80.  
  81.    this.ENTRYTEXTFIELD = new ENTRYFIELD(this)
  82.    with (this.ENTRYTEXTFIELD)
  83.       height = 1
  84.       left = 1
  85.       top = 2
  86.       width = 56
  87.       metric = 0
  88.       dataLink = this.dmdtext.ref.textquery.rowset.fields["TextField"]
  89.       fontSize = 8
  90.       validRequired = true
  91.       borderStyle = 7
  92.    endwith
  93.  
  94.  
  95.    this.BUTTONDELETE = new PUSHBUTTON(this)
  96.    with (this.BUTTONDELETE)
  97.       onClick = class::BUTTONDELETE_ONCLICK
  98.       height = 1.1818
  99.       left = 1
  100.       top = 4
  101.       width = 16
  102.       text = "Delete Row"
  103.       metric = 0
  104.       fontSize = 8
  105.       group = true
  106.    endwith
  107.  
  108.  
  109.    this.BUTTONCOUNT = new PUSHBUTTON(this)
  110.    with (this.BUTTONCOUNT)
  111.       onClick = class::BUTTONCOUNT_ONCLICK
  112.       height = 1.1818
  113.       left = 18
  114.       top = 4
  115.       width = 16
  116.       text = "Count Rows..."
  117.       metric = 0
  118.       fontSize = 8
  119.       group = true
  120.    endwith
  121.  
  122.  
  123.    this.TEXTHELP = new TEXT(this)
  124.    with (this.TEXTHELP)
  125.       height = 8
  126.       left = 1
  127.       top = 6
  128.       width = 56
  129.       metric = 0
  130.       colorNormal = "BtnText"
  131.       fontSize = 8
  132.       text = "This form works with the Text Table Data Module to demonstrate how to use a custom database class. While the form appears to use a standard database, it is actually bypassing BDE to edit a text file through a custom query class. The entryfield uses a stan";
  133.        + "dard dataLink and the button's call delete() and count() methods as if the rowset were working with a native BDE or SQL-Link rowset. The custom query contains implementations for the following rowset methods: beginAppend(), bookmark(), count(), delete(), f";
  134.        + "irst(), goto(), last(), next() and save()."
  135.       borderStyle = 2
  136.    endwith
  137.  
  138.  
  139.    this.rowset = this.dmdtext.ref.textquery.rowset
  140.  
  141.    // {Linked Method} form.buttoncount.onClick
  142.    function BUTTONCOUNT_onClick
  143.        local sCount
  144.        sCount = LTRIM( STR( this.form.rowset.count() ) )
  145.        MSGBOX("Total number of rows counted: " + sCount, ;
  146.               "Counted Rows")
  147.    return (sCount)
  148.  
  149.    // {Linked Method} form.buttondelete.onClick
  150.    function BUTTONDELETE_onClick
  151.       local bDelete
  152.       bDelete = false
  153.       if ( MSGBOX("You are about to delete the row." ;
  154.                 + CHR(13) ;
  155.                 + "Click Yes to delete the current row.", ;
  156.                   "Text Table", ;
  157.                   4) == 6 )
  158.          bDelete := this.form.rowset.delete()
  159.       endif
  160.    return ( bDelete )
  161.  
  162. endclass
  163.